package com.fortune.dao;

import java.util.List;

import com.fortune.vo.dStoreTrans.*;
import com.fortune.vo.mStoreTrans.MStoreTransInfoDetail;
import org.apache.ibatis.annotations.Param;

import com.fortune.dto.in.dStoreTrans.DStoreTransAListDto;
import com.fortune.dto.in.dStoreTrans.DStoreTransAddDetailDto;
import com.fortune.dto.in.dStoreTrans.DStoreTransAddDto;
import com.fortune.dto.in.dStoreTrans.DStoreTransEditDto;
import com.fortune.entity.DUserInfo;

public interface DStoreTransDao {
	List<DStoreTransInfo> list(@Param("dUserInfo")DUserInfo dUserInfo, @Param("listDto")DStoreTransAListDto listDto);
	
	int count(@Param("dUserInfo")DUserInfo dUserInfo, @Param("listDto")DStoreTransAListDto listDto);
	
	DstoreTransDetail detail(@Param("dUserInfo")DUserInfo dUserInfo,@Param("id")String id);

	DstoreProductType findProWhereMid(@Param("proId")String proId);

	int add(@Param("id")String id,@Param("dUserInfo")DUserInfo dUserInfo,@Param("addDto")DStoreTransAddDto addDto);
	
	int addDetail(@Param("id")String id,@Param("price")String price,@Param("dUserInfo")DUserInfo dUserInfo,@Param("addDetailDto")DStoreTransAddDetailDto addDetailDto);
	
	int edit(@Param("dUserInfo")DUserInfo dUserInfo,@Param("editDto")DStoreTransEditDto editDto);
	
	int deleteDetail(@Param("dUserInfo")DUserInfo dUserInfo,@Param("editDto")DStoreTransEditDto editDto);
	
	int delete(@Param("dUserInfo")DUserInfo dUserInfo,@Param("id")String id);
	
	int outConfirm(@Param("dUserInfo")DUserInfo dUserInfo,@Param("id")String id);
	
	int inConfirm(@Param("dUserInfo")DUserInfo dUserInfo,@Param("id")String id);
	
	String price (@Param("dUserInfo")DUserInfo dUserInfo,@Param("addDetailDto")DStoreTransAddDetailDto addDetailDto);

	DstoreTransDetail findDetail(@Param("id")String id, @Param("did")String did);

	Integer findRemainNum(@Param("did")String did,@Param("outStore")String outStore,@Param("mpid")String mpid);

	int productOut(@Param("num")Integer num,@Param("did")String did,@Param("outStore")String outStore,@Param("id")String id,@Param("detail")DStoreTransInfoDetail dstoreTransInfoDetail);

	int productIn(@Param("num")Integer num,@Param("did")String did,@Param("inStore")String inStore,@Param("id")String id,@Param("detail")DStoreTransInfoDetail dstoreTransInfoDetail);
}
